#ifndef STATE_H
#define STATE_H

#include "Event.hpp"

class State
{
public:
	enum StateType
	{
		EMERGENCYSTOP,
		ERROR,
		FOLLOWCOLORLANE,
		FREESTYLE,
		TURNOVERONCOLORLANE
	};

	virtual ~State()
	{

	}

	virtual void handleEvent(Event& event) = 0;
	virtual void initState() = 0;
	virtual StateType getStateType() = 0;
protected:
	State() { };
	State(State const&) { };
};
#endif
